package controller;

import java.security.PublicKey;
import java.security.spec.X509EncodedKeySpec;

import org.hibernate.Session;

import utils.Terminal;
import model.Usuario;
import dataBaseOperations.CrudBasic;

public class UsuarioController extends CrudBasic<Usuario> {
		
	public UsuarioController(Session session) {
		super(session);
	}

	Terminal console = new Terminal("Usuario_Services");
	@Override
	protected Class<Usuario> getClazz() {
		return Usuario.class;
	}
	
	public boolean createUser(String nombre, String apPaterno,
			String apMaterno, String usuario, String email, String contrasena,
			char sexo, PublicKey publicKey) {
		Usuario newUser = new Usuario();
		newUser.setNombre(nombre);
		newUser.setApPaterno(apPaterno);
		newUser.setApMaterno(apMaterno);
		newUser.setIdNickName(usuario);
		newUser.setEmail(email);
		newUser.setPassword(contrasena);
		newUser.setSexo(sexo);
		X509EncodedKeySpec encoded = new X509EncodedKeySpec(
				publicKey.getEncoded());
		newUser.setPublicKey(encoded.getEncoded());
		console.info(publicKey.toString());
		return persist(newUser);
	}
	
	public boolean exists(String username){
		if(getByPK(username)!=null)
			return true;
		return false;
	}
	
}
